function correlation_matrix = calculate_code_correlation(spreading_codes)
% calculate_code_correlation - 计算扩频码之间的相关性
%
% 输入参数:
%   spreading_codes - 扩频码矩阵，每行是一个用户的扩频码
%
% 输出参数:
%   correlation_matrix - 相关性矩阵，表示各码之间的相关程度

% 获取用户数量
num_users = size(spreading_codes, 1);

% 初始化相关性矩阵
correlation_matrix = zeros(num_users, num_users);

% 计算各用户码之间的互相关
for i = 1:num_users
    for j = 1:num_users
        % 归一化互相关
        correlation = abs(sum(spreading_codes(i, :) .* spreading_codes(j, :))) / length(spreading_codes(i, :));
        correlation_matrix(i, j) = correlation;
    end
end

% 输出相关性矩阵的统计信息
diag_values = diag(correlation_matrix);  % 自相关值（应为1）
off_diag = correlation_matrix - diag(diag_values);  % 互相关值
max_off_diag = max(abs(off_diag(:)));    % 最大互相关

fprintf('扩频码相关性分析:\n');
fprintf('  - 平均自相关: %.4f (理想值为1)\n', mean(diag_values));
fprintf('  - 最大互相关: %.4f (理想值为0)\n', max_off_diag);
fprintf('  - 平均互相关: %.4f\n', sum(sum(abs(off_diag)))/(num_users^2-num_users));

end 